---
title: Certbot SSL 证书配置
description: 本文档介绍如何在云服务器上使用 Certbot 为 Nginx 配置 Let's Encrypt 免费 SSL 证书
---


## 前提条件

- 你的域名已解析到服务器的公网 IP。
- 服务器已安装 Nginx，且 80 和 443 端口已开放。
- 操作系统为 Ubuntu/Debian（其他系统请参考 Certbot 官方文档）。


## 1. 安装 Certbot

更新软件包列表：`sudo apt update`

安装 Certbot 及其 Nginx 插件：`sudo apt install certbot python3-certbot-nginx`


## 2. 申请 SSL 证书

运行以下命令，Certbot 将自动配置 Nginx 并为你的域名申请证书：

```
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
```

替换 `yourdomain.com` 为你的实际域名。
按提示输入邮箱地址并同意服务条款。
Certbot 会自动修改 Nginx 配置文件，启用 HTTPS。

## 3. 验证证书

Certbot 会在 `/etc/letsencrypt/live/yourdomain.com/` 目录下生成证书文件。
检查 Nginx 配置文件（通常在 /etc/nginx/sites-available/）是否包含以下内容：
```
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri; # 重定向 HTTP 到 HTTPS
}

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    ...
}
```

重启 Nginx 以应用配置：`sudo systemctl reload nginx`



## 4. 配置自动续期
Let's Encrypt 证书有效期为 90 天，Certbot 默认会设置自动续期任务。测试自动续期：
```
sudo certbot renew --dry-run
```

如果测试成功，证书将自动续期，无需手动干预。

## 注意事项

确保服务器防火墙允许 80 和 443 端口访问。
使用 SSL Labs 检查 SSL 配置是否正确。
如果需要手动调整 Nginx 配置，确保 SSL 证书路径正确。

## 故障排除

如果 Certbot 报错，检查域名解析是否正确。
查看 Nginx 配置错误：`sudo nginx -t`
查看 Certbot 日志：`sudo less /var/log/letsencrypt/letsencrypt.log`




